home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
remote
/
fddev202.zip
/
FDDEV.DOC
< prev
next >
Wrap
Text File
|
1991-10-02
|
23KB
|
705 lines
FDDEV 2.02
FrontDoor Developer's Kit
For FrontDoor 2.00 and above
Table of contents
1 LEGAL NOTICE . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
PASCAL.ARJ . . . . . . . . . . . . . . . . . . . . . . . . . 2
C.ARJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
FDDEV.DOC . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3 Data types . . . . . . . . . . . . . . . . . . . . . . . . . . 2
4 Unix-style dates . . . . . . . . . . . . . . . . . . . . . . . 2
5 CRC values . . . . . . . . . . . . . . . . . . . . . . . . . . 2
6 The FD environment variable . . . . . . . . . . . . . . . . . . 3
7 Country specific information . . . . . . . . . . . . . . . . . 3
8 DOS versions . . . . . . . . . . . . . . . . . . . . . . . . . 3
9 Miscellaneous files . . . . . . . . . . . . . . . . . . . . . . 3
SETUP.FD . . . . . . . . . . . . . . . . . . . . . . . . . . 3
EVENT.FD . . . . . . . . . . . . . . . . . . . . . . . . . . 3
FOLDER.FD . . . . . . . . . . . . . . . . . . . . . . . . . . 3
PASSWORD.FD . . . . . . . . . . . . . . . . . . . . . . . . . 3
INBOUND/OUTBOUND.HIS . . . . . . . . . . . . . . . . . . . . 4
NODIAL.FD . . . . . . . . . . . . . . . . . . . . . . . . . . 4
REQUEST.FD . . . . . . . . . . . . . . . . . . . . . . . . . 4
LASTCALL.FD . . . . . . . . . . . . . . . . . . . . . . . . . 4
MODEM.FD . . . . . . . . . . . . . . . . . . . . . . . . . . 4
TERMKEYS.FD . . . . . . . . . . . . . . . . . . . . . . . . . 4
TERMPHON.FD . . . . . . . . . . . . . . . . . . . . . . . . . 4
TERMPROF.FD . . . . . . . . . . . . . . . . . . . . . . . . . 4
10 Reserved space . . . . . . . . . . . . . . . . . . . . . . . . 4
11 The log file . . . . . . . . . . . . . . . . . . . . . . . . . 5
12 Communicating with FrontDoor . . . . . . . . . . . . . . . . . 6
FDRESCAN.NOW . . . . . . . . . . . . . . . . . . . . . . . . 6
FMRESCAN.NOW . . . . . . . . . . . . . . . . . . . . . . . . 6
FDINSESS.nnn . . . . . . . . . . . . . . . . . . . . . . . . 6
FDINEXIT.nnn . . . . . . . . . . . . . . . . . . . . . . . . 7
FDNOUSER.NOW . . . . . . . . . . . . . . . . . . . . . . . . 7
FDNOSCAN.NOW . . . . . . . . . . . . . . . . . . . . . . . . 7
FDNOEXIT.NOW . . . . . . . . . . . . . . . . . . . . . . . . 7
NODIAL.FD . . . . . . . . . . . . . . . . . . . . . . . . . . 7
FDEXIT.nnn . . . . . . . . . . . . . . . . . . . . . . . . . 7
FDRENUM.nnn . . . . . . . . . . . . . . . . . . . . . . . . . 7
ROUTE.FD . . . . . . . . . . . . . . . . . . . . . . . . . . 7
13 Service requests . . . . . . . . . . . . . . . . . . . . . . . 8
14 .MSG file format . . . . . . . . . . . . . . . . . . . . . . . 8
15 The LOCAL bit . . . . . . . . . . . . . . . . . . . . . . . . 8
16 Packet format . . . . . . . . . . . . . . . . . . . . . . . . 8
17 Nodelist . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
18 Getting in touch . . . . . . . . . . . . . . . . . . . . . . . 8
1 LEGAL NOTICE
The FrontDoor Developer's Kit and information attached hereto,
hereafter referred to as FDDEV, is protected by applicable copyright
laws and international treaty provisions. FDDEV is provided as is,
without warranty of any kind or fitness for a particular purpose,
either expressed or implied, all of are hereby explicitly disclaimed.
Advanced Engineering sarl only guarantees that FDDEV will occupy disk
space.
The entire risk as to the quality and performance of FDDEV is with
you. Should FDDEV prove defective or incorrect, you assume the entire
cost of all necessary servicing, repair, and/or correction. In no
event shall Advanced Engineering sarl or Joaquim H. Homrighausen be
liable to the you or anyone else for any damages or costs, including,
but not limited to, any lost profits, lost savings, lost income, lost
information, loss of the right to use FDDEV, or other incidental or
consequential damages arising out of the use or inability to use
FDDEV.
Additional statements by agents, employees, distributors, and dealers
of Advanced Engineering sarl do not constitute warranties by Advanced
Engineering sarl and do not bind Advanced Engineering sarl.
The information contained in this document was assembled from source
code and various data definitions from the FrontDoor E-Mail system. I
don't guarantee the accuracy of this information and it's subject to
change without further notice.
I will try to keep this information as up-to-date as possible. If you
decide to write an application with explicit support for FrontDoor,
feel free to use this information as long as you understand that
you're on your own. There is no support available for this package.
It's intended to be used by programmers and developers.
FDDEV may be published and distributed to other people as long as no
part of it is modified by any means, this includes translation to any
other language (technical or social), and as long as no charges are
applied, this includes trading. FDDEV information may not be used to
reverse engineer FrontDoor, or any related utility, nor may it be
used to commercially compete with Advanced Engineering sarl or
Joaquim H. Homrighausen.
All Advanced Engineering sarl and Joaquim H. Homrighausen products
are trademarks or registered trademarks of Advanced Engineering sarl
or Joaquim H. Homrighausen. Other brand and product names are
trademarks or registered trademarks of their respective holders.
Copyright 1990-1991 Advanced Engineering sarl. All rights reserved.
Documentation and Software written by Joaquim H. Homrighausen.
1
2 Files
PASCAL.ARJ
A collection of include (.INC) files for use with Turbo Pascal
5.5 and later.
C.ARJ
A collection of include (.H) files for use with most ANSI C
compatible C compilers.
FDDEV.DOC
This file.
3 Data types
The file definitions in this package make references to several data
types, such as integers and bytes ('U' is used to indicate the C
notation "unsigned"). These are as follows:
Pascal C Description
---------------------------------------------------------------------
integer int A 16-bit signed integer. If the high bit is set,
the number is negative, otherwise it's a positive
number.
word Uint A 16-bit unsigned integer. The high bit is used
for data and does not represent the sign.
longint Ulong A 32-bit unsigned (long) integer. The high bit is
used for data and does not represent the sign.
byte Uchar An 8-bit unsigned byte. The high bit is used for
data and does not represent the sign.
---------------------------------------------------------------------
4 Unix-style dates
A Unix-style time/date stamp is a 32-bit integer containing the
number of seconds since midnight (GMT/UTC), January 1, 1970.
5 CRC values
CRC (Cyclic Redundancy Check) values (CCITT variant) are used
frequently in the FrontDoor environment to ensure data integrity,
etc. How you generate a CRC value is beyond the scope of this
documentation.
2
6 The FD environment variable
If the FD environment variable is set, FrontDoor will use the drive
and directory pointed to by it to retrieve the information in the
SETUP.FD file. If the FD environment variable is not set, FrontDoor
will assume that SETUP.FD is in the current directory. I strongly
advise you to follow the same pattern for your own application.
Note that the directory where SETUP.FD is located is not necessarily
the FrontDoor system directory. You should read the contents of
SETUP.FD and use the SYSTEMPATH field to determine where the system
directory actually is.
7 Country specific information
FrontDoor and several related utilities display the date and time in
the format indicated by the COUNTRY setting in CONFIG.SYS. I suggest
you do the same. All you have to do is to use the DOS (INT 0x21) call
to retrieve information about the current country (0) and DOS will
fill the passed structure with the proper information.
8 DOS versions
Since FrontDoor require that the user has DOS version 3.10 or above,
it's safe for your own FrontDoor utilities to require the same.
9 Miscellaneous files
File SETUP.FD
Loc See above.
Def CTL.H/.INC
Desc The core system file for FrontDoor. It has to be present
before FD will operate. You have to read data from this file
to retrieve the SYSTEMPATH field, where FD keeps most of its
other files.
File EVENT.FD
Loc System directory
Def EVENT.H/.INC
Desc Contains information about events.
File FOLDER.FD
Loc System directory
Def FOLDER.H/.INC
Desc Contains information about the message editor's (FM) folders.
The NetMail folder is stored in SETUP.FD.
File PASSWORD.FD
Loc System directory
Def SESSION.H/.INC
Desc Session level passwords and specific behavior, relating to
protocols and handshake methods, when calling other systems.
3
File INBOUND/OUTBOUND.HIS
Loc System directory
Def MAILHIST.H/.INC
Desc Inbound and outbound mail history.
File NODIAL.FD
Loc System directory
Def UNDIAL.H/.INC
Desc List of undialable systems.
File REQUEST.FD
Loc System directory
Def REQUEST.H/.INC
Desc Password protection for inbound file/update requests.
File LASTCALL.FD
Loc System directory
Def LASTCALL.H/.INC
Desc Last inbound and outbound mail call as well as recent system
activity.
File MODEM.FD
Loc System directory
Def MODEM.H/.INC
Desc Data to send to modem prior to dialing a system.
File TERMKEYS.FD
Loc System directory
Def TERMINAL.H/.INC
Desc Terminal macro key definitions.
File TERMPHON.FD
Loc System directory
Def TERMINAL.H/.INC
Desc Terminal phone directory definitions.
File TERMPROF.FD
Loc System directory
Def TERMINAL.H/.INC
Desc Interactive EMSI profiles for the terminal.
10 Reserved space
Arrays or variables marked "Reserved" or "Reserverat" is RESERVED
storage and may NOT be used for your own purposes. This is for your
own good. The obvious situation would be if I release a new version
of FrontDoor that uses that space and you don't have time to release
an updated version of your utility.
4
11 The log file
FrontDoor, TosScan, and AirMail uses the same logging format. Here's
a sample of three different programs all using the same log format:
---------- Wed 02 Oct 91, FD 2.02
= 11.28.17 RING
= 11.28.30 CONNECT 14400/ARQ/V32/LAPM
+ 11.28.32 Online Communications Inc., 1:132/300
~ 11.28.32 SysOp: James Smith
~ 11.28.32 Using: FrontDoor 2.10/OC00003C
: 11.28.32 Tranx: 28E9AD5E / 28E969D2
~ 11.28.32 Flags: XA,CM,HST,V42B,V32B
~ 11.28.32 Phone: 1-207-990-3511
11.28.32 sType: EMSI
11.28.32 Password protected mail session
* 11.28.39 Rcvd C:\FD\FILE\NET\000693C8.PKT; 4826b, 1206 CPS
* 11.29.16 Rcvd C:\FD\FILE\NET\FF76011B.WE1; 33365b, 926 CPS
* 11.29.29 Sent C:\FD\FILE\OE\A3DAB809.WE1; 7664b, 1916 CPS
+ 11.29.32 Mail transfer completed
$ 11.29.32 From 1:132/300, 1.00, 0.
11.29.33 Truncating sent file: C:\FD\FILE\OE\A3DAB809.WE1
11.29.36 Msg 56 from 1:132/300 to tomas bremin
- 11.29.36 Mail received, errorlevel=255; exiting
---------- Thu 22 Feb 90, TSUTIL; Link
# 21:26:12 505 messages linked
---------- Thu 22 Feb 90, TSMAINT; EMPTY
# 21:26:26 0 "empty" area(s) found
The 'dash line' is created whenever FrontDoor is brought up from DOS.
If you want to insert information about which program is running, do
it like the samples above.
The time format used in the log file is always in 24 hour format, but
the separators (':' for USA, '.' for Sweden, etc.) should be taken
from DOS' country structure. The century of the year is never written
to the log.
Please try to use a format similar to or exactly like the above
samples. There are several log analyzers out there for FrontDoor.
Also, please don't use any of the 'symbols' (first character on the
line) that are used by FrontDoor or TosScan as that could probably
confuse some log analyzer.
5
12 Communicating with FrontDoor
If FrontDoor is running in a multitasking environment, such as
DESQView or on a LAN such as Novell, the contents of the NetMail
folder can change quite easily. A program on one workstation could
create new mail that has to be sent out immediately, another program
could unpack mail received from a Usenet feed, etc. FrontDoor's
mailer (FD) and editor (FM) can be forced to rescan its NetMail
folder by using semaphore files.
FM and FD check for the various semaphore files periodically. How
frequently this occurs depends on how much the program has to do and
what it is doing.
All semaphore files are checked for in the SYSTEMPATH directory in
the noncommercial version. In the commercial version, the RESCANPATH
directory is used if it's defined, otherwise the SYSTEMPATH directory
is used. The noncommercial version of FrontDoor ignores the
RESCANPATH directory completely.
The size of the semaphore files is ignored and several of the files
are never removed. Instead, the program reads the timestamp of the
file and simply checks for an updated timestamp.
The following files are supported:
FDRESCAN.NOW Forces FD to discard all mail packets (NOT messages)
from the temporary packet directory and rescan the
contents of the NetMail folder before rebuilding the
packets.
FD updates this file by itself after mail sessions,
etc. to allow other (possible) copies of FD to take
notice of the changes in the NetMail folder, this
does, however, not cause a rescan on the machine that
updated it.
FMRESCAN.NOW Forces FM to rebuild its internal list of messages in
the NetMail folder. This is only acted upon by FM if
the user is in the primary NetMail folder.
FDINSESS.nnn FD creates this file whenever a mail session is
initiated, and when it is dialing a system,
attempting to establish a mail session. If FM detects
this file, it will not let you renumber the NetMail
folder. "Nnn" is the task number (0-255). This is not
supported in the noncommercial version.
6
FDINEXIT.nnn FD creates this file whenever a human caller is
detected and passed onto a BBS or other on-line
service.
When FD returns, it compares the timestamp of
FDINEXIT.nnn with the timestamp of FDRESCAN.NOW, and
if they do not match, a complete rescan (see
FDRESCAN.NOW) is performed. "nnn" is the task number
(0-255). In the noncommercial version, this file is
not task aware, and is always called "FDINEXIT.NOW".
FDNOUSER.NOW Forces FD to refuse human callers. This has the same
effect as setting the "Human callers" option, under
FD's "Your profile" menu, to "NO". The visual
indicator for this semaphore file is "NU".
FDNOSCAN.NOW Forces FD to ignore FDRESCAN.NOW.
FDNOEXIT.NOW Prevents FD from exiting because of received mail.
This has the same effect as setting the "Exit on
mail" option, under FD's "Your profile" menu, to
"NO". The visual indicator for this semaphore file is
"NE".
NODIAL.FD While this is not a semaphore file per se, it
triggers the display of a visual indicator, "UD".
FDEXIT.nnn Forces FD to UNconditionally exit with the errorlevel
"nnn". Before FD exits, it removes the file.
FDRENUM.nnn FM creates this file whenever you press <Alt-B> to
renumber the NetMail folder. When FD detects this
file, it will not place any outgoing calls until the
file has been removed. This prevents FD from
initiating an outbound session while FM is
renumbering the contents of the NetMail folder. "nnn"
is the task number (0-255). This is not available in
the noncommercial version.
ROUTE.FD While this is not a semaphore file per se, it is used
to determine if the NetMail folder has to be
rescanned (see FDRESCAN.NOW). If the timestamp of
this file has changed since FD last checked it, a
rescan is forced.
7
13 Service requests
When FrontDoor is processing a "Service Request" (please refer to the
FrontDoor documentation for a description of Service Requests), it
creates a file containing information about the remote system. The
following structure is used:
<RemoteInfo>
<RemoteIDCount>
<RemoteIDList>
The <RemoteIDCount> field is a 16-bit unsigned integer containing the
number of valid entries in the <RemoteIDList> field (the number of
bytes written is constant). For a description of these structures,
please refer to SREQ.H and SREQ.INC respectively.
The name of the created file can be obtained from FrontDoor and
passed on the command-line to the external application.
14 .MSG file format
FrontDoor uses the Opus (1.03) convention for .MSG file formats. Ie.
the binary date_arrived and date_created fields. If it can't
successfully parse any of those fields, it will use the ASCIIZ date
string.
15 The LOCAL bit
FrontDoor requires that the LOCAL message attribute bit is set before
it will send the message(s). If the LOCAL bit is missing, FrontDoor
will not forward the message to its destination unless an appropriate
forwarding instruction is found in its route file.
16 Packet format
FrontDoor uses the FSC-39 packet header proposal when creating
packets. When reading received packets, FrontDoor supports both the
FSC-39 and FSC-45 ("Type 2.2") proposals.
17 Nodelist
The FrontDoor nodelist structures have not been released as of yet.
18 Getting in touch
Advanced Engineering sarlPhone+352 358725
8, am ForFax+352 355938
L-5351 OetrangeModem+352 355936
Luxembourg
E-Mail: 2:270/17@fidonet, 2:270/7@fidonet, ae@fido.rmi.de
8